import { createApp } from 'vue'
import { createPinia } from 'pinia'
import App from '@/App.vue'
import router from '@router'
import '@styles/index.css'
import './style.css'

// 创建 Vue 应用实例
const app = createApp(App)
// 挂载全局属性，用于GlobalPropertiesDemo演示
app.config.globalProperties.$appInfo = {
  appName: 'Vue 3 特性演示',
  version: '1.0.0',
  environment: 'development'
}

// 挂载全局方法
app.config.globalProperties.$showMessage = (message) => {
  alert('[全局消息] ' + message)
}

app.config.globalProperties.$showError = (error) => {
  console.error('[全局错误]', error)
  alert('[全局错误] ' + error)
}

// 创建并使用 Pinia
const pinia = createPinia()
app.use(pinia)

// 使用路由
app.use(router)

// 全局错误处理
app.config.errorHandler = (err, instance, info) => {
  console.error('Vue 错误:', err)
  console.error('错误信息:', info)
}

// 挂载应用
app.mount('#app')

// 注意: 在TypeScript项目中，需要在单独的.d.ts文件中添加类型声明
